/**
 * Created by Administrator on 2017/9/27.
 */
//引用
requirejs.config({
    baseUrl:"../js",
    paths:{
        //指定模块
        "jquery":"lib/jquery-3.2.1",
        "spinner":"lib/jquery.spinner",
        "cookie":"lib/jquery.cookie",
    },
    //引用非模块
    shim:{
        "spinner":{
            deps:["jquery"],
            exports:"spinner",
        },
        "cookie":{
            deps:["jquery"],
            exports:"cookie",
        }
    }
})
//使用模块
requirejs(["jquery",'spinner','cookie'],function ($) {
    $(function () {
        //数量加减引用
        $('.spinnerExample').spinner({});

        //初始所有的CheckBox默认选中
        $('input').attr('checked',true);

        //右侧购物车的隐藏与展开
        var flag=false;
        $("#cartSlide").on("click",function () {
            if(flag){
                $("#sidecart").animate({right:"-280px"},500,function () {
                    $("#cartSlide").css("backgroundColor","#333");
                    flag=false;
                });
            }else{
                $("#sidecart").animate({right:"0px"},500,function () {
                    $("#cartSlide").css("backgroundColor","#e14958");
                    flag=true;
                });
            }
            //先清除所有的li标签，在重新加载
            $('.cartlist').find('ul li').eq(0).siblings('li').remove();
            var str=$.cookie(GetQueryString('utel'));
            var arrId=JSON.parse(str);
            remove(arrId).forEach(function (p1, p2, p3) {
                var newLi=$('.cartlist').find('li').eq(0).clone(true);
                newLi.find('b').html(imgInfo(p1).id)
                newLi.find('.kind').html(imgInfo(p1).kind);
                newLi.find('.img').css('background-image',"url('../images/"+imgInfo(p1).src+"')");
                newLi.find('.cart_bot1').find('p').html(imgInfo(p1).title);
                newLi.find('.sig_price').html(imgInfo(p1).newprice);
                $('.cartlist').find('ul').append(newLi);
            })
            $('.cartlist').find('ul li').eq(0).remove();

            //加载新数量
            function initCount(arr){
                var map={}
                for(var i=0;i<arr.length;i++){
                    var s=arr[i];
                    var r=map[s];
                    if(r){
                        map[s]+=1;
                    }else {
                        map[s]=1
                    }
                }
                return map;
            }
            var countNum=[];
            $.each(initCount(arrId),function (key,val) {
                countNum.push(val);
            })
            for(var i=0;i<$('.cartlist').find('.sigNum').length;i++){
                $('.cartlist').find('.sigNum').eq(i).val(countNum[i])
            }
            //重新计算总价格
            $('.tolprice').html("￥"+countMoney().toFixed(2));

        })

        //返回顶部
        $(document).on("scroll",function () {
            var maxHeight=$("#header").height();
            if($(this).scrollTop()>maxHeight){
                $('.backtop').css('display',"block");
            }else {
                $('.backtop').css('display',"none");
            }
        })
        $('.backtop').on("click",function () {
            $(document).css("top","0px");
        })


        //判断是否当前是否有用户;并获取值,更新头部
        function GetQueryString(name)
        {
            var reg
                = new RegExp("(^|&)"+
                name +"=([^&]*)(&|$)");
            var r
                = window.location.search.substr(1).match(reg);
            if(r!=null)return  unescape(r[2]);return null;
        }
        if(GetQueryString('utel')){
            $("#utel").html("欢迎您,"+GetQueryString('utel'));
            $("#utel").attr('href',"mine.html?utel="+GetQueryString('utel'));
            $(".logo").find('a').attr('href',"index.html?utel="+GetQueryString('utel'));
        }

        //加载页面购物车列表
        var str=$.cookie(GetQueryString('utel'));
        var arrId=JSON.parse(str);
        function remove(arrId) {
            var newArrId=[];
            arrId.forEach(function(p1){
                if (newArrId.indexOf(p1) == -1 ) {
                    newArrId.push(p1);
                }
            })
            return newArrId;
        }
        if(str!="[]"){
            $('.num').html(arrId.length);
        }else{
            $('.empty').css("display","block");
            $('.empty').find('.right').find('a').attr("href","index.html?utel="+GetQueryString('utel'));
        }
        function imgInfo(numid) {
            var resIndex;
            if(numid>=80){
                resIndex=8;
            }else if(numid>=75){
                resIndex=7
            }else if(numid>=71){
                resIndex=6
            }else if(numid>=67){
                resIndex=5
            }else if(numid>=61){
                resIndex=4
            }else if(numid>=43){
                resIndex=3
            }else if(numid>=7){
                resIndex=2
            }else if(numid>=5){
                resIndex=1
            }else {
                resIndex=0
            }
            var result;
            $.ajax({
                url:"../js/tsconfig.json",
                type:"get",
                async:false,
                success:function (res) {
                    if(res){
                        $.each(res[resIndex],function (key,val) {
                            //查找与id相同的图片信息
                            if(numid==val.id){
                                result=val;
                            }
                        })
                    }
                }
            });
            return result;
        }
        remove(arrId).forEach(function (p1, p2, p3) {
            var newUl=$('.tbody').find('ul').eq(0).clone(true);
            newUl.find('.img').find('div').css('background-image',"url('../images/"+imgInfo(p1).src+"')");
            newUl.find('.name').find('span').eq(0).html(imgInfo(p1).brand);
            newUl.find('.name').find('span').eq(1).html(imgInfo(p1).title);
            newUl.find('b').html(imgInfo(p1).id);
            newUl.find('.price').find('span').html(imgInfo(p1).newprice);
            $('.tbody').append(newUl);
        })
        $('.tbody').find('ul').eq(0).remove();

        //购物车列表加减数量初始化
        function initCount(arr){
            var map={}
            for(var i=0;i<arr.length;i++){
                var s=arr[i];
                var r=map[s];
                if(r){
                    map[s]+=1;
                }else {
                    map[s]=1
                }
            }
            return map;
        }
        var countNum=[];
        $.each(initCount(arrId),function (key,val) {
            countNum.push(val);
        })
        for(var i=0;i<$('.tbody').find('ul').length;i++){
            $('.tbody').find('ul').eq(i).find('.sigNum').val(countNum[i])
        }
        var cartArr=[];
        //减少按钮
        $('.decrease').on("click",function () {
            var count=$(this).siblings('input').val();
            count--;
            $(this).siblings('input').val(count);
            $(this).parents('li').find('.tolprice').html(countMoney());
            $('.gocart').find('.tolprice').html(countMoney().toFixed(2));
            if(count<=1){
                $(this).attr('disabled','disabled');
            }
            $('.num').html(totalNum);
            //实时更新购物车的数量
            var str=$.cookie(GetQueryString('utel'));
            if(str){
                var imgId=$(this).parents('ul').find('b').html();
                var arrId=JSON.parse(str);
                var index=arrId.indexOf(imgId);
                arrId.splice(index,1);
                var user=GetQueryString('utel');
                $.cookie(user,JSON.stringify(arrId),{expires:7});
            }
            //实时更新价格
            $(this).parents('ul').find($('.td_total')).find('span').html(singleMoney($(this)));
            //实时更新总数量
            newCount();
            //右边侧的总价格/数量也要改变
            var index=$(this).parents('ul').index();
            $('.cartlist').find('li').eq(index).find('.sigNum').val(count);
            $('#sidecart').find('.num').html(totalNum());
            $('.gocart').find('.tolprice').html(r_countMoney().toFixed(2));
        });

        //增加按钮
        $('.increase').on("click",function () {
            var count=$(this).siblings('input').val();
            count++;
            $(this).siblings('input').val(count);
            $('.gocart').find('.tolprice').html(countMoney().toFixed(2));
            if(count>1){
                $('.decrease').removeAttr('disabled');
            }
            //实时更新cookie的数量
            var str=$.cookie(GetQueryString('utel'));
            if(str){
                cartArr=JSON.parse(str);
                cartArr.push($(this).parents('ul').find('b').html());
                var user=GetQueryString('utel');
                $.cookie(user,JSON.stringify(cartArr),{expires:7});
            }
            $(this).parents('ul').find($('.td_total')).find('span').html(singleMoney($(this)));
            //实时页面总数量，总价格
            newCount();
            //右边侧的数量也要改变
            var rightIndex=$(this).parents('ul').index();
            $('.cartlist').find('li').eq(rightIndex).find('.sigNum').val(count);
            $('#sidecart').find('.num').html(totalNum());
            $('.gocart').find('.tolprice').html(r_countMoney().toFixed(2));
        });

        //计算一类产品的总价格
        function singleMoney(parm) {
            var singleCount=0;
            var singleNum=Number(parm.siblings('input').val());
            var singlePrice=Number(parm.parents('li').siblings('li').eq(2).find('span').html());
            singleCount=singleNum*singlePrice;
            return singleCount.toFixed(2);
        }
        //初始总数量
        function totalNum() {
            var totalNum=0;
            for(var i=0;i<$('.tbody').find('ul').length;i++){
                var sigleNum=Number($('.tbody').find('ul').eq(i).find('.sigNum').val());
                totalNum+=sigleNum;
            }
            return totalNum;
        }
        //初始所有数量页面总价
        function countMoney() {
            var totalmoney=0;
            for(var i=0;i<$('.tbody').find('ul').length;i++){
                var single=Number($('.tbody').find('ul').eq(i).find('.td_total').find('span').html());
                totalmoney+=single;
            }
            return totalmoney;
        }
        //实时更新选择：总数量,总价格
        function newCount() {
            var newCount=0;
            var newMoney=0;
            for(var i=0;i<$('.tbody').find('input:checked').length;i++){
                newCount+=Number($('.tbody').find('input:checked').eq(i).parents('ul').find('.sigNum').val());
                newMoney+=Number($('.tbody').find('input:checked').eq(i).parents('ul').find('.sigNum').val())*
                    Number($('.tbody').find('input:checked').eq(i).parents('ul').find('.td_sigle').find('span').html());
            }
            $('.selectCount').html(newCount);
            $('.total_price').html(newMoney.toFixed(2));
            $('#main').find('.num').html(newCount);
        }

        //初始化页面总数量
        $('.selectCount').html(totalNum());

        //初始化页面单条价格
        for(var i=0;i<$('ul').length;i++){
            $('.increase').eq(i).parents('ul').find($('.td_total')).find('span').html(singleMoney($('.increase').eq(i)));
        }

        //初始化页面总价格
        $('.total_price').html(countMoney().toFixed(2));

        //全选
        $('.tlist input').on("click",function () {
            var checkValue=$(this).get(0).checked;
            selectAll($('.count'),checkValue);
            //实时更新页面总数量和价格
            newCount();
        });
        $('.count').find("input[type='checkbox']").on("click",function () {
            var checkValue=$(this).get(0).checked;
            selectAll($('.tlist'),checkValue);
            //实时更新页面总数量和价格
            newCount();
        });
        $('.data').find('input[type="checkbox"]').on("click",function () {
            var len1=$('.data').find('input[type="checkbox"]:checked').length;
            var len2=$('.data').find('input[type="checkbox"]').length;
            if(len1<len2){
                $('.tlist').find('input[type="checkbox"]').eq(0).prop("checked", false);
                $('.count').find('input[type="checkbox"]').eq(0).prop("checked", false);
            }else{
                $('.tlist').find('input[type="checkbox"]').eq(0).prop("checked",true)
                $('.count').find('input[type="checkbox"]').eq(0).prop("checked",true)
            }
            //实时更新总数量
            newCount();
        })

        //全选函数
        function selectAll(parm,checkValue) {
            if(checkValue){
                $('.data').find("input[type='checkbox']").prop("checked", true);
                parm.find("input[type='checkbox']").prop("checked",true)
            }else {
                $('.data').find("input[type='checkbox']").prop("checked", false);
                parm.find("input[type='checkbox']:checked").prop("checked", false);
            }
        }

        //删除商品
        $('.del').on("click",function () {
            if(window.confirm("您确定要删除商品吗？")){
                var imgId=$(this).parents('ul').find('b').html();
                var str=$.cookie(GetQueryString('utel'));
                var arrId=JSON.parse(str);
                for(var i=0;i<arrId.length;i++){
                    if(imgId==arrId[i]){
                        arrId.splice(i,1);
                        i--;
                    }
                }
                $(this).parents('ul').remove();;
                //重新插入
                var user=GetQueryString('utel');
                $.cookie(user,JSON.stringify(arrId),{expires:7});
                //实时更新页面总量和总价格
                newCount();
                //改变右侧的num
                $('#sidecart').find('.num').html(totalNum());
            }

        })
        //删除选中的商品
        $('.selectdel').on("click",function () {
            var delarr=$('.data').find('input[type="checkbox"]:checked');
            var str=$.cookie(GetQueryString('utel'));
            var arrId=JSON.parse(str);
            for(var i=0;i<delarr.length;i++){
                var imgId=delarr.eq(i).parents('ul').find('b').html();
                for(var j=0;j<arrId.length;j++){
                    if(imgId==arrId[j]){
                        arrId.splice(j,1);
                        j--;
                    }
                }
                delarr.eq(i).parents('ul').remove();
            }
            //重新插入
            var user=GetQueryString('utel');
            $.cookie(user,JSON.stringify(arrId),{expires:7});
            //实时更新页面总量和总价格
            newCount();
            //改变右侧的num
            $('#sidecart').find('.num').html(totalNum());
        })

        //右侧购物车


        //计算总数量
        function r_totalNum() {
            var r_totalNum=0;
            for(var i=0;i<$('.cartlist').find('li').length;i++){
                var sigleNum=Number($('.cartlist').find('li').eq(i).find('.sigNum').val());
                r_totalNum+=sigleNum;
            }
            return r_totalNum;
        }
        //计算总价
        function r_countMoney() {
            var totalmoney=0;
            for(var i=0;i<$('.cartlist').find('li').length;i++){
                var siglePrice=Number($('.cartlist').find('li').eq(i).find('.sig_price').html());
                var sigleNum=Number($('.cartlist').find('li').eq(i).find('.sigNum').val());
                totalmoney+=siglePrice*sigleNum;
            }
            return totalmoney;
        }
        $('.gocart').find('.tolprice').html(r_countMoney().toFixed(2));

        //删除商品
        var leftIdArr=[];
        for(var i=0;i<$('.tbody').find('ul').length;i++){
            leftIdArr.push($('.tbody').find('ul').eq(i).find('b').html());
        }
        $('.cartlist').find('.r_del').on("click",function () {
            var imgId=$(this).parents('li').find('b').html();
            var str=$.cookie(GetQueryString('utel'));
            var arrId=JSON.parse(str);
            for(var i=0;i<arrId.length;i++){
                if(imgId==arrId[i]){
                    arrId.splice(i,1);
                    i--;
                }
            }
            for(var i=0;i<leftIdArr.length;i++){
                if(imgId==leftIdArr[i]){
                    $('.tbody').find('ul').eq(i).remove();
                }
            }
            $(this).parents('li').remove();
            //.num数量要改变
            $('#sidecart').find('.num').html(r_totalNum());
            //总价格要改变
            $('#sidecart').find('.tolprice').html(r_countMoney().toFixed(2));
            //重新插入
            var user=GetQueryString('utel');
            $.cookie(user,JSON.stringify(arrId),{expires:7});

            //页面的数量和总价格也要改变
            newCount();
        })
        //按钮减少
        $('.cartlist').find('.r_increase').on("click",function () {
            //改变右侧的总价格和数量
            var count=$(this).siblings('input').val();
            count++;
            $(this).siblings('input').val(count);
            $('.gocart').find('.tolprice').html(r_countMoney().toFixed(2));
            if(count>1){
                $('.decrease').removeAttr('disabled');
            }
            $('#sidecart').find('.num').html(r_totalNum());
            //实时更新购物车的数量
            var str=$.cookie(GetQueryString('utel'));
            if(str){
                cartArr=JSON.parse(str);
                cartArr.push($(this).parents('li').find('b').html());
                var user=GetQueryString('utel');
                $.cookie(user,JSON.stringify(cartArr),{expires:7});
            }
            //更新左边页面的数据
            var thisId=$(this).parents('li').find('b').html();
            for(var i=0;i<leftIdArr.length;i++){
                if(leftIdArr[i]==thisId){
                    $('.tbody').find('ul').eq(i).find('.sigNum').val(count);
                }
            }
            newCount();
            for(var i=0;i<$('ul').length;i++){
                $('.increase').eq(i).parents('ul').find($('.td_total')).find('span').html(singleMoney($('.increase').eq(i)));
            }
        })
        //按钮增加
        $('.cartlist').find('.r_decrease').on("click",function () {
            //改变右侧的总价格和数量
            var count=$(this).siblings('input').val();
            count--;
            $(this).siblings('input').val(count);
            $('.gocart').find('.tolprice').html(r_countMoney().toFixed(2));
            if(count<=1){
                $(this).attr('disabled','disabled');
            }
            $('#sidecart').find('.num').html(r_totalNum());
            //实时更新购物车的数量
            var str=$.cookie(GetQueryString('utel'));
            if(str){
                var imgId=$(this).parents('li').find('b').html();
                var arrId=JSON.parse(str);
                var index=arrId.indexOf(imgId);
                arrId.splice(index,1);
                cartArr.push($(this).parents('li').find('b').html());
                var user=GetQueryString('utel');
                $.cookie(user,JSON.stringify(arrId),{expires:7});
            }
            //更新左边页面的数据
            var thisId=$(this).parents('li').find('b').html();
            for(var i=0;i<leftIdArr.length;i++){
                if(leftIdArr[i]==thisId){
                    $('.tbody').find('ul').eq(i).find('.sigNum').val(count);
                }
            }
            newCount();
            for(var i=0;i<$('ul').length;i++){
                $('.increase').eq(i).parents('ul').find($('.td_total')).find('span').html(singleMoney($('.increase').eq(i)));
            }
        })

        //跳转至详情页
        $('.godetails').on("click",function () {
            var imgId=$(this).parents('li').find('b').html();
            $(this).parents('li').find('.godetails').attr('href','goodsdetails.html?utel='+GetQueryString('utel')+'&id='+imgId);
        })

    })
})